package com.gyy.flutter.plugin.flutter_plugin_print_a300.newprint.base;

import android.content.res.Resources;
import android.graphics.Bitmap;

public interface IPrint {


    /**
     * 页面大小设置方法
     *
     * @param pageWidth
     * @param pageHeight
     */

    void pageStart(double pageWidth, double pageHeight);

    /**
     * 打印线的方法
     * @param startX
     * @param startY
     * @param endX
     * @param endY
     * @param lineWidth
     */
    void printLine(double startX, double startY, double endX, double endY, int lineWidth);

    /**
     * 打印字的方法
     *
     * @param startX
     * @param startY
     * @param text
     * @param textSize
     * @param angle
     * @param isBold
     */
    void printText(int startX, int startY, double width, double height, String text, double textSize, int angle, boolean isBold, boolean reverse, String mag);



    /**
     * 打印条形码的方法
     *
     * @param startX
     * @param startY
     * @param text
     * @param Height
     * @param LineWidth
     * @param Rotate
     */
    void printBarCode(double startX, double startY, String text, double Height, int LineWidth, int Rotate);


    /**
     * 释放资源
     */
    void pageFree();


    /**
     * 打印pc坐标点 图片的方法
     *
     * @param res  资源
     * @param width 图片宽度
     * @param height 图片高度
     * @param startX 开始x
     * @param StartY 开始y
     * @param isNegate True：正常显示。False：取反显示。
     */
    void printPcDraw(Resources res, Bitmap bitmap, int width, int height, double startX, double StartY, boolean isNegate);
    /**
     * 打印pc坐标点 线的方法
     *
     */
    void printPcLine(int x, int y, String direction, double length);
    /**
     * 打印pc坐标点 矩形的方法
     *
     */
    void printPcRectangle(int x, int y, double width, double height);

    /**
     * 打印pc坐标点 字的方法
     *
     * @param startX
     * @param startY
     * @param text
     * @param textSize
     * @param angle
     * @param isBold
     */
    void printPcText(int startX, int startY, String text, double textSize, int angle, boolean isBold, double width, double height, boolean reverse, String mag);

    /**
     * 打印pc坐标点 条形码的方法
     *  @param startX
     * @param startY
     * @param text
     * @param width
     * @param Height
     * @param LineWidth
     * @param Rotate
     */
    void printPcBarCode(double startX, double startY, String text, double width, double Height, int LineWidth, int Rotate);

    void printPcQRCode( String x, String y, String M , String U, String data);
    void printQRCode( String x, String y, String M , String U, String data);

    void  getPrintState();
}
